IoT 해킹 기초

2020-07-07
  • 임베디드 해킹

    • 펌웨어 추출하고 분석하는 것으로 시작
  • abnormal action이 취약점인지는 상황에 따라 다를 수 있다!
  • command injection

    • stdin으로 들어온 인자가 system 함수로 들어 가면서 임의 명령어 실행
    • 유저 권한인 경우 취약점 아님
    • 취약점인지는 sandboxing 정책이나 root에 따라 다름
  • memory corruption

    • 취약점인지는 abort 되더라도 상황에 따라 다름
  • tee, trustzone, SGX : 루트 권한일 때도 보호해줘야 할 수 있다!
  • 펌웨어 보호 로직 존재

    • 보호 기능 적용 시 비용 증가하고 성능 저하함
  • RF(Radio Frequency) 통신
  • 스마트 차량 취약점

    • OBD2 : 차량 상태 검사, 블루투스
    • CAN : 라디오 통신
    • ECU engine control unit
    • gps, lte 등
  • 스마트 홈 취약점

    • 도어락, 무인 택배, 엘레베이터, 조명/난방, 카메라 등
    • 동 게이트웨이 제어
    • 공용시설 제어
  • 카드 포스 단말기 취약점

    • 금융, 개인 정보
    • 환불 등 거래 조작
    • 연결된 PC 해킹
  • 복합기기 취약점

    • 탈취, 변조
    • 문서 위변조
    • 팩스 보내기
    • 클라우드 전송도 가능
  • 스마트 TV 취약점

    • 카메라
    • 유료 결제
    • TV 내 어플리케이션
    • 브라우저(pc버전에서 브라우저 취약점 발견하고 스마트TV에서 바로 조치하기 어려움)
  • 냉장고 취약점

    • 방화 : 프레온 가스 폭발?
  • 동적 디버깅

    • 에뮬레이팅 필요

      • 그외 요소들도 맞춰줘야 해서 동적 디버깅 환경 구성이 매우 어려움
  • 프리다, 하우스(프리다 매핑 하우스) : 동적 분석 도구
  • JTAG : HW gdb라고 볼 수 있다.

    • JTAG 등 디버그 포트 제외하고 출시하여 해킹 방지하기도 함

      • 모든 디버그 포트 막을 시 사후 분석 리스크 존재

        • 디버그 불가 시 교체하는 방법뿐
  • 임베디드 칩의 데이터시트 내용 따라서 신호 교환

    • 제 3의 기기가 신호 교환을 할 수 있어 이를 이용해 임베디드 해킹할 수 있음
  • 디솔더링 후 덤프 시 데이터 이상한 경우

    • 덤프를 잘못한 경우 등
  • binwalk : 펌웨어 분석 도구
  • Return Oriented Programming(ROP)
  • heap exploit : 잘 찾기 (매우)어려움, 성과를 내려고 할 때 잘 안씀
  • fuzzing(fuzzer) : 취약점 분석 도구
  • 차상길 교수님 : fuzzer 정형화 논문

    • 메이헴 개발(데프콘 출전)
  • IDA : 디스어셈블러
  • JEB : 디컴파일러
  • 하우스로 인증서 우회하는 스크립트를 통해 앱 해킹

    • 해킹하는 스크립트 자동으로 생성
    • 프리다로도 모두 가능(다만 세팅이 필요함)
  • 후킹(영어: hooking)은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다.

  • tcp 분석만으로 해킹 가능
  • SDR(Software-Defined Radio)
  • diff : 컴퓨터에서 diff 는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다.

    • 해킹 시 실제 동작과 패킷을 바꿔가며 확인하여 수행
    • 암호화 통신으로 방지
    • 난독화 : 소프트웨어 단에서 해독 가능
  • 임베디드 기기의 키를 숨기는 문제 ← 공격 대상

    • 임베디드가 인터넷에 연결 안된 경우

      • PKI 방식 사용 불가
      • 키를 메모리에 저장해야 함
  • 임베디드 보안 공격을 막기는 어렵다.

    • 취약점이 발견되기 마련!
  • 하드웨어 해킹 자료 : https://www.hackerschool.org/SubHtml/HSPosting/?uid=46
  • RCE(Remote Code Execution)